package com.aimusic.utils;

import org.springframework.stereotype.Component;

import java.security.SecureRandom;

/**
 * 验证码生成工具类（使用安全随机数生成器）
 */
@Component
public class VerifyCodeUtil {
    // 安全随机数生成器（比Random更安全，避免可预测性）
    private static final SecureRandom secureRandom = new SecureRandom();

    /**
     * 生成指定长度的数字验证码
     * @param length 验证码长度（如6位）
     * @return 数字验证码字符串
     */
    public static String generateNumericCode(int length) {
        if (length <= 0) {
            throw new IllegalArgumentException("验证码长度必须大于0");
        }
        // 计算最大值（如6位则为999999）
        int max = (int) Math.pow(10, length) - 1;
        // 生成0到max之间的随机数
        int code = secureRandom.nextInt(max + 1);
        // 不足length位则补0（如生成123 → 补成000123）
        return String.format("%0" + length + "d", code);
    }

    // 快捷生成6位数字验证码（最常用）
    public static String generate6DigitCode() {
        return generateNumericCode(6);
    }
}